import {createRouter, createWebHashHistory, createWebHistory} from "vue-router";

const routes = [
    {
        path: '/',
        component: () => import('../../views/chap14/Login.vue'),
        meta: {
            requiresAuth: true,
            transitionIn: 'animate__zoomIn',
            transitionOut: 'animate__zoomOut',
        }
    },
    {
        path: '/index',
        component: () => import('../../views/chap14/Index.vue'),
        meta: {
            requiresAuth: true,
            transitionIn: 'animate__fadeInUp',
            transitionOut: 'animate__fadeOutDown',
        },
        // beforeEnter: (to, from) => {
        //     // reject the navigation
        //     console.log(to);
        //     console.log(from);
        //     return true
        // },
    },
    {
        path: '/user/:id',
        component: () => import('../../views/chap14/User.vue'),
        meta: {requiresAuth: true}
    },
    {
        path: '/userDetails/:id',
        component: () => import('../../views/chap14/UserDetails.vue'),
        meta: {requiresAuth: true}
    },
]
const router = createRouter({
    // history: createWebHashHistory(),
    history: createWebHistory(),
    routes, // `routes: routes` 的缩写
})
// router.beforeEach((to, from,next) => {
//     console.log(to);
//     console.log(from);
//     console.log(to.query.account);
//     console.log(to.query.password);
//     if ('/' === to.path){
//         // return true;
//         next()0
//     }else if ('/index' === to.path){
//         if ('admin' === to.query.account && '123' === to.query.password){
//             // return true
//             next()
//         }
//     }
//     // ...
//     // 返回 false 以取消导航
//     // return false
//     console.log('beforeEach');
//     next();
// });
// router.beforeResolve(async to => {
//     console.log('beforeResolve');
//     console.log(to.meta.requiresAuth);
//     if (to.meta.requiresAuth) {
//         try {
//             console.log(1 / 0);
//         } catch (error) {
//             if (error instanceof NotAllowedError) {
//                 // ... 处理错误，然后取消导航
//                 return false
//             } else {
//                 // 意料之外的错误，取消导航并把错误传给全局处理器
//                 throw error
//             }
//         }
//     }
// });
// router.afterEach((to, from) => {
//     console.log('afterEach');
//     console.log(to);
//     console.log(from);
// });
export default router